home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / minix / up1510b.tgz / up1510b / src / kernel / stfdc.h < prev    next >
Text File  |  1988-11-10  |  2KB  |  58 lines

  1. /*
  2.  * Atari ST hardware:
  3.  * Western Digital 1772 Floppy Disk Controller, modified step rates
  4.  */
  5.  
  6. /*
  7.  * Accessing the FDC registers is indirect through ST-specific
  8.  * DMA circuitry. See also dma.h.
  9.  */
  10. #define    FDC_CS    (FDC      )    /* command/status */
  11. #define    FDC_TR    (FDC|   A0)    /* track register */
  12. #define    FDC_SR    (FDC|A1   )    /* sector register */
  13. #define    FDC_DR    (FDC|A1|A0)    /* data register */
  14.  
  15. /*
  16.  * commands (relevant bits/fields indicated)
  17.  */
  18. #define    RESTORE    0x00    /* ( HVRR) seek to track 0 */
  19. #define    SEEK    0x10    /* ( HVRR) seek to track */
  20. #define    STEP    0x20    /* (UHVRR) step in same direction */
  21. #define    STEPI    0x40    /* (UHVRR) step in */
  22. #define    STEPO    0x60    /* (UHVRR) step out */
  23. #define    F_READ    0x80    /* (MHE00) read sector */
  24. #define    F_WRITE    0xA0    /* (MHEPA) write sector */
  25. #define    READID    0xC0    /* ( HE00) read sector ID */
  26. #define    READTR    0xE0    /* ( HE00) read track */
  27. #define    WRITETR    0xF0    /* ( HEP0) write track */
  28. #define    IRUPT    0xD0    /* ( IIII) force interrupt */
  29.  
  30. /*
  31.  * other bits/fields in command register
  32.  */
  33. #define    RATE6    0x00    /* not 2, but  6 msec steprate */
  34. #define    RATE12    0x01    /* not 3, but 12 msec steprate */
  35. #define    RATE2    0x02    /* not 5, but  2 msec steprate */
  36. #define    RATE3    0x03    /* not 6, but  3 msec steprate */
  37. #define    VBIT    0x04    /* verify sector ID */
  38. #define    HBIT    0x08    /* suppress motor on sequence */
  39. #define    UBIT    0x10    /* update track register */
  40. #define    EBIT    0x04    /* wait 30 msec to settle */
  41. #define    MBIT    0x10    /* multi-sector */
  42. #define    PBIT    0x02    /* write precompensate */
  43. #define    A0BIT    0x01    /* suppress (?) data address mark */
  44. #define    IINDEX    0x04    /* interrupt on each index pulse */
  45. #define    IFORCE    0x08    /* force interrupt */
  46.  
  47. /*
  48.  * status register
  49.  */
  50. #define    BUSY    0x01    /* set if command under execution */
  51. #define    DRQ    0x02    /* Data Register status (pin c1) */
  52. #define    LD_T00    0x04    /* lost data; track 00 */
  53. #define    CRCERR    0x08    /* CRC error */
  54. #define    RNF    0x10    /* Record Not Found */
  55. #define    RT_SU    0x20    /* Record Type; Spin Up completed */
  56. #define    WRI_PRO    0x40    /* Write Protected */
  57. #define    MOTORON    0x80    /* Motor On */
  58.